40747
 // 数据发生变化更新视图，自身实例化的时候网dep中添加自己
class Watcher {
  constructor (vm, key, cb) {
    this.vm = vm
    // data中的属性名称
    this.key = key
    // 回调函数，负责更新视图
    this.cb = cb
    // 将自身添加到dep的静态属性target中
    Dep.target = this
    // 触发get方法，在get方法中调用
    this.oldValue = vm[key]
    Dep.target = null
  }

  // 当数据发生变化的时候更新视图
  update () {
    let newValue = this.vm[this.key]
    if (newValue === this.oldValue) return
    this.cb(newValue)
  }
}
